<html>
<head><meta charset="utf-8"><title>GATs ahoy · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html">GATs ahoy</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="247191770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247191770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247191770">(Jul 26 2021 at 11:48)</a>:</h4>
<p>Btw, <span class="user-mention" data-user-id="232957">@Jack Huey</span>, I'm around today, but would prefer to sync over Zulip</p>



<a name="247191784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247191784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247191784">(Jul 26 2021 at 11:49)</a>:</h4>
<p>(when the time comes)</p>



<a name="247196349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247196349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247196349">(Jul 26 2021 at 12:43)</a>:</h4>
<p>That worke for me</p>



<a name="247198152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247198152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247198152">(Jul 26 2021 at 12:59)</a>:</h4>
<p>Gonna be a couple minutes late. In the meantime, can you look at the blog post?</p>



<a name="247198421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247198421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247198421">(Jul 26 2021 at 13:01)</a>:</h4>
<p>Yep</p>



<a name="247198801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247198801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247198801">(Jul 26 2021 at 13:04)</a>:</h4>
<p>Ok here</p>



<a name="247198836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247198836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247198836">(Jul 26 2021 at 13:04)</a>:</h4>
<p>I am still reading blog post :)</p>



<a name="247199018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199018">(Jul 26 2021 at 13:06)</a>:</h4>
<p>No worries</p>



<a name="247199066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199066">(Jul 26 2021 at 13:06)</a>:</h4>
<p>I figure if you read through, there's no reason not to be able to publish today, I don't think.</p>



<a name="247199165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199165">(Jul 26 2021 at 13:07)</a>:</h4>
<p>I think it's good</p>



<a name="247199198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199198">(Jul 26 2021 at 13:07)</a>:</h4>
<p>I'm debating if we could do more to give the "TL;DR' or why you should care about this</p>



<a name="247199253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199253">(Jul 26 2021 at 13:08)</a>:</h4>
<p>but I think we don't have to</p>



<a name="247199298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199298">(Jul 26 2021 at 13:08)</a>:</h4>
<p>given that it's still unstable etc etc I think we can hold off on devoting a lot of script to explaining how great it is</p>



<a name="247199308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199308">(Jul 26 2021 at 13:08)</a>:</h4>
<p>and the examples are really good</p>



<a name="247199339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199339">(Jul 26 2021 at 13:08)</a>:</h4>
<p>I'm thinking mostly of folks who dont know rust especially well, they may not be able to follow, but then they probably aren't the ones who are going to try it at this phase</p>



<a name="247199382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199382">(Jul 26 2021 at 13:09)</a>:</h4>
<p>Right</p>



<a name="247199515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199515">(Jul 26 2021 at 13:10)</a>:</h4>
<p>Okay, so I'll address the 3 review comments and change the date to today</p>



<a name="247199518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199518">(Jul 26 2021 at 13:10)</a>:</h4>
<p>Then you think it's good?</p>



<a name="247199701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199701">(Jul 26 2021 at 13:12)</a>:</h4>
<p>I'm thinking</p>



<a name="247199719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199719">(Jul 26 2021 at 13:12)</a>:</h4>
<p>I was thinking about the "lending iterator" example</p>



<a name="247199726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199726">(Jul 26 2021 at 13:12)</a>:</h4>
<p>I wonder if we could just add a short paragraph up front like this:</p>



<a name="247199771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199771">(Jul 26 2021 at 13:12)</a>:</h4>
<p>Maybe it will never be short</p>



<a name="247199822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199822">(Jul 26 2021 at 13:13)</a>:</h4>
<p>--- yes, it's good :)</p>



<a name="247199842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199842">(Jul 26 2021 at 13:13)</a>:</h4>
<p>I'm looking up some old blog posts of mine</p>



<a name="247199856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199856">(Jul 26 2021 at 13:13)</a>:</h4>
<p>e.g. <a href="https://smallcultfollowing.com/babysteps/blog/2016/11/02/associated-type-constructors-part-1-basic-concepts-and-introduction/">https://smallcultfollowing.com/babysteps/blog/2016/11/02/associated-type-constructors-part-1-basic-concepts-and-introduction/</a></p>



<a name="247199939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199939">(Jul 26 2021 at 13:14)</a>:</h4>
<p>we could maybe link to those posts, though we'd have to explain the shift in terminology</p>



<a name="247199952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199952">(Jul 26 2021 at 13:14)</a>:</h4>
<p>honestly i'm not sure how accessible they are anyway</p>



<a name="247199981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247199981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247199981">(Jul 26 2021 at 13:14)</a>:</h4>
<p>Hmm</p>



<a name="247200002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200002">(Jul 26 2021 at 13:14)</a>:</h4>
<p>there are several follow-up posts:</p>
<ul>
<li><a href="https://smallcultfollowing.com/babysteps/blog/2016/11/03/associated-type-constructors-part-2-family-traits/">https://smallcultfollowing.com/babysteps/blog/2016/11/03/associated-type-constructors-part-2-family-traits/</a></li>
<li><a href="https://smallcultfollowing.com/babysteps/blog/2016/11/04/associated-type-constructors-part-3-what-higher-kinded-types-might-look-like/">https://smallcultfollowing.com/babysteps/blog/2016/11/04/associated-type-constructors-part-3-what-higher-kinded-types-might-look-like/</a></li>
<li><a href="https://smallcultfollowing.com/babysteps/blog/2016/11/09/associated-type-constructors-part-4-unifying-atc-and-hkt/">https://smallcultfollowing.com/babysteps/blog/2016/11/09/associated-type-constructors-part-4-unifying-atc-and-hkt/</a></li>
</ul>



<a name="247200003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200003">(Jul 26 2021 at 13:14)</a>:</h4>
<p>I would say it's probably not worth it</p>



<a name="247200009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200009">(Jul 26 2021 at 13:14)</a>:</h4>
<p>I agree</p>



<a name="247200021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200021">(Jul 26 2021 at 13:15)</a>:</h4>
<p>better to just write some new posts</p>



<a name="247200030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200030">(Jul 26 2021 at 13:15)</a>:</h4>
<p>ok, ship it :)</p>



<a name="247200053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200053">(Jul 26 2021 at 13:15)</a>:</h4>
<p>Okay, I'll make the changes and cc core</p>



<a name="247200089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200089">(Jul 26 2021 at 13:15)</a>:</h4>
<p>Okay, so</p>



<a name="247200099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200099">(Jul 26 2021 at 13:15)</a>:</h4>
<p>For other things to discuss</p>



<a name="247200119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200119">(Jul 26 2021 at 13:15)</a>:</h4>
<p>I've been working through GATs issues</p>



<a name="247200193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200193">(Jul 26 2021 at 13:16)</a>:</h4>
<p>Already got one diagnostics PR merged (implicit static in trait objects in GATs)</p>



<a name="247200211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200211">(Jul 26 2021 at 13:16)</a>:</h4>
<p>Nice</p>



<a name="247200218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200218">(Jul 26 2021 at 13:16)</a>:</h4>
<p>There's <a href="https://github.com/rust-lang/rust/issues/84931">#84931</a></p>



<a name="247200258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200258">(Jul 26 2021 at 13:16)</a>:</h4>
<p>Which basically just needs to just adding a <code>where</code> clause on GATs instead of a lifetime bound on the type param</p>



<a name="247200267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200267">(Jul 26 2021 at 13:17)</a>:</h4>
<p>that was pretty easy</p>



<a name="247200278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200278">(Jul 26 2021 at 13:17)</a>:</h4>
<p>just have to PR it and get feedback</p>



<a name="247200295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200295">(Jul 26 2021 at 13:17)</a>:</h4>
<p>(but the code is written)</p>



<a name="247200303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200303">(Jul 26 2021 at 13:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/GATs.20ahoy/near/247200218">said</a>:</p>
<blockquote>
<p>There's <a href="https://github.com/rust-lang/rust/issues/84931">#84931</a></p>
</blockquote>
<p>what happens, I wonder, if you're missing the <code>where Self: 'a</code> on the trait?</p>



<a name="247200312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200312">(Jul 26 2021 at 13:17)</a>:</h4>
<p>this is definitely going to be a common point of GAT confusion</p>



<a name="247200328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200328">(Jul 26 2021 at 13:17)</a>:</h4>
<p>(<em>so annoying</em> that it is necessary)</p>



<a name="247200360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200360">(Jul 26 2021 at 13:18)</a>:</h4>
<p>Good question, I'll make sure that test case is included</p>



<a name="247200415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200415">(Jul 26 2021 at 13:18)</a>:</h4>
<p>the diagnostic I wrote <em>should</em> cover that</p>



<a name="247200434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200434">(Jul 26 2021 at 13:18)</a>:</h4>
<p>and yes, this is going to be a bit confusing</p>



<a name="247200438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200438">(Jul 26 2021 at 13:18)</a>:</h4>
<p>there's no PR attached to that issue</p>



<a name="247200454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200454">(Jul 26 2021 at 13:18)</a>:</h4>
<p>Let me just make the PR quickly then</p>



<a name="247200561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200561">(Jul 26 2021 at 13:19)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/87478">#87478</a></p>



<a name="247200630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200630">(Jul 26 2021 at 13:20)</a>:</h4>
<p>There might be a better way to do this</p>



<a name="247200668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200668">(Jul 26 2021 at 13:20)</a>:</h4>
<p>OK</p>



<a name="247200686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200686">(Jul 26 2021 at 13:20)</a>:</h4>
<p>Apart from diagnostics, any other blocking issues you know of?</p>



<a name="247200690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200690">(Jul 26 2021 at 13:20)</a>:</h4>
<p>yes</p>



<a name="247200697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200697">(Jul 26 2021 at 13:20)</a>:</h4>
<p>Have you done a full sweep of triaged issues etc?</p>



<a name="247200705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200705">(Jul 26 2021 at 13:20)</a>:</h4>
<p>How up to date is the project board?</p>



<a name="247200707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200707">(Jul 26 2021 at 13:20)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/86787">#86787</a></p>



<a name="247200727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200727">(Jul 26 2021 at 13:21)</a>:</h4>
<p>I thought this was diagnostics (that's what it's labeled as)</p>



<a name="247200731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200731">(Jul 26 2021 at 13:21)</a>:</h4>
<p>but it's not</p>



<a name="247200761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200761">(Jul 26 2021 at 13:21)</a>:</h4>
<p>(project board: let me double check)</p>



<a name="247200796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200796">(Jul 26 2021 at 13:21)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/GATs.20ahoy/near/247200731">said</a>:</p>
<blockquote>
<p>but it's not</p>
</blockquote>
<p>what is it?</p>



<a name="247200803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200803">(Jul 26 2021 at 13:21)</a>:</h4>
<p>the problem is we give the help: "consider adding an explicit lifetime bound <code>&lt;Left as HasChildrenOf&gt;::T: 'a</code>"</p>



<a name="247200815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200815">(Jul 26 2021 at 13:21)</a>:</h4>
<p>I do expect an error there, right?</p>



<a name="247200841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200841">(Jul 26 2021 at 13:21)</a>:</h4>
<p>but we have</p>



<a name="247200848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200848">(Jul 26 2021 at 13:21)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">type</span> <span class="nc">TRef</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="w"></span>
<span class="w">    </span><span class="k">where</span><span class="w"></span>
<span class="w">    </span><span class="o">&lt;</span><span class="n">Left</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">HasChildrenOf</span><span class="o">&gt;</span>::<span class="n">T</span>: <span class="o">'</span><span class="na">a</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="o">&lt;</span><span class="n">Right</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">HasChildrenOf</span><span class="o">&gt;</span>::<span class="n">T</span>: <span class="o">'</span><span class="na">a</span>
    <span class="o">=</span><span class="w"> </span><span class="n">Either</span><span class="o">&lt;&amp;'</span><span class="na">a</span><span class="w"> </span><span class="n">Left</span>::<span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="n">Right</span>::<span class="n">T</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
</code></pre></div>



<a name="247200856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200856">(Jul 26 2021 at 13:22)</a>:</h4>
<p>I feel like we should <em>ideally</em> be saying "this impl cannot add where clauses that the trait doesn't have"</p>



<a name="247200904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200904">(Jul 26 2021 at 13:22)</a>:</h4>
<p>ohh</p>



<a name="247200934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200934">(Jul 26 2021 at 13:22)</a>:</h4>
<p>maybe it is just diagnostics then</p>



<a name="247200964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247200964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247200964">(Jul 26 2021 at 13:22)</a>:</h4>
<p>What do we do for functions here?</p>



<a name="247201016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201016">(Jul 26 2021 at 13:22)</a>:</h4>
<p>That's a good question</p>



<a name="247201039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201039">(Jul 26 2021 at 13:23)</a>:</h4>
<p>I only started looking at this last night</p>



<a name="247201047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201047">(Jul 26 2021 at 13:23)</a>:</h4>
<p>didn't get very far</p>



<a name="247201114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201114">(Jul 26 2021 at 13:23)</a>:</h4>
<p>But also, how <em>could</em> we do this, if the impl can't have additional where clauses?</p>



<a name="247201143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201143">(Jul 26 2021 at 13:23)</a>:</h4>
<p>Because there is no <code>Left</code> or <code>Right</code> on the trait</p>



<a name="247201192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201192">(Jul 26 2021 at 13:24)</a>:</h4>
<p>and <code>'a</code> is a lifetime on the associated type</p>



<a name="247201390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201390">(Jul 26 2021 at 13:25)</a>:</h4>
<p>/me looks</p>



<a name="247201459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201459">(Jul 26 2021 at 13:26)</a>:</h4>
<p>I think that <code>where Self:  'a</code> suffices</p>



<a name="247201509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201509">(Jul 26 2021 at 13:26)</a>:</h4>
<p>Self: 'a =&gt; Left: 'a</p>



<a name="247201522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201522">(Jul 26 2021 at 13:26)</a>:</h4>
<p>Left: 'a =&gt; &lt;Left as HasChildrenOf&gt;::T: 'a</p>



<a name="247201550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201550">(Jul 26 2021 at 13:26)</a>:</h4>
<p>not sure if this is exactly what you meant, but <a href="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2018&amp;gist=2c3779dbd947a046c56ae8b40e2608fe">https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2018&amp;gist=2c3779dbd947a046c56ae8b40e2608fe</a> is what we output for fns with extra where clauses</p>



<a name="247201608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201608">(Jul 26 2021 at 13:26)</a>:</h4>
<p>try for regions</p>



<a name="247201662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201662">(Jul 26 2021 at 13:27)</a>:</h4>
<div class="codehilite"><pre><span></span><code>error[E0195]: lifetime parameters or bounds on method `foo` do not match the trait declaration
 --&gt; src/lib.rs:8:11
  |
4 |     fn foo&lt;&#39;a, T&gt;();
  |           ------- lifetimes in impl do not match this method in trait
...
8 |     fn foo&lt;&#39;a, T&gt;() where T: &#39;a {}
  |           ^^^^^^^ lifetimes do not match method in trait
</code></pre></div>



<a name="247201687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201687">(Jul 26 2021 at 13:27)</a>:</h4>
<p><a href="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2018&amp;gist=834f0a235d928e5dda6488d6ded970f3">playground</a></p>



<a name="247201694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201694">(Jul 26 2021 at 13:27)</a>:</h4>
<p><code>where Self: 'a</code> works</p>



<a name="247201724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201724">(Jul 26 2021 at 13:27)</a>:</h4>
<p>Ideally, want to give that as a diagnostic</p>



<a name="247201734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201734">(Jul 26 2021 at 13:27)</a>:</h4>
<p>this sort of example is why those rules were setup that way</p>



<a name="247201747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201747">(Jul 26 2021 at 13:27)</a>:</h4>
<p>but oh boy not sure how</p>



<a name="247201753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201753">(Jul 26 2021 at 13:27)</a>:</h4>
<p>(I'd still like to tweak them a bit...)</p>



<a name="247201841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201841">(Jul 26 2021 at 13:28)</a>:</h4>
<p>glad to see those tweaks paying off in practice :)</p>



<a name="247201869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201869">(Jul 26 2021 at 13:28)</a>:</h4>
<p>which rules?</p>



<a name="247201880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201880">(Jul 26 2021 at 13:28)</a>:</h4>
<p>The <code>Self: 'a</code> and such</p>



<a name="247201884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201884">(Jul 26 2021 at 13:28)</a>:</h4>
<p>?</p>



<a name="247201919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201919">(Jul 26 2021 at 13:28)</a>:</h4>
<p>the rules that make those implications true</p>



<a name="247201932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201932">(Jul 26 2021 at 13:28)</a>:</h4>
<p>gotcha</p>



<a name="247201993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247201993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247201993">(Jul 26 2021 at 13:29)</a>:</h4>
<p>Ok, so I definitely have to think about how to output a good diagnostic here</p>



<a name="247202037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202037">(Jul 26 2021 at 13:29)</a>:</h4>
<p>The correct code is a few steps removed and non-obvious</p>



<a name="247202059"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202059" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202059">(Jul 26 2021 at 13:29)</a>:</h4>
<p>yeah</p>



<a name="247202141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202141">(Jul 26 2021 at 13:30)</a>:</h4>
<p>I do wonder how many GATs will <em>ever</em> exist that don't have a <code>where Self: 'a</code>-style clause :/</p>



<a name="247202174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202174">(Jul 26 2021 at 13:30)</a>:</h4>
<p>well, we'll worry about that for later</p>



<a name="247202230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202230">(Jul 26 2021 at 13:30)</a>:</h4>
<p>Also curious :)</p>



<a name="247202278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202278">(Jul 26 2021 at 13:31)</a>:</h4>
<p>Would be interesting to think if we could somehow make that the default</p>



<a name="247202290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202290">(Jul 26 2021 at 13:31)</a>:</h4>
<p>and allowing <em>opting out</em></p>



<a name="247202295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202295">(Jul 26 2021 at 13:31)</a>:</h4>
<p>yeah, I know</p>



<a name="247202301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202301">(Jul 26 2021 at 13:31)</a>:</h4>
<p>Something like <code>T: ?Sized</code></p>



<a name="247202303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202303">(Jul 26 2021 at 13:31)</a>:</h4>
<p>it's a nasty pattern though</p>



<a name="247202325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202325">(Jul 26 2021 at 13:31)</a>:</h4>
<p>I might rather infer it from impls in the crate</p>



<a name="247202336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202336">(Jul 26 2021 at 13:31)</a>:</h4>
<p>but that's also nasty</p>



<a name="247202353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202353">(Jul 26 2021 at 13:31)</a>:</h4>
<p>I don't prefer that at all</p>



<a name="247202361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202361">(Jul 26 2021 at 13:31)</a>:</h4>
<p>we have time to tweak those rules, in any case</p>



<a name="247202419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202419">(Jul 26 2021 at 13:32)</a>:</h4>
<p>even post stabilization, if we care to use an edition</p>



<a name="247202468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202468">(Jul 26 2021 at 13:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/GATs.20ahoy/near/247202353">said</a>:</p>
<blockquote>
<p>I don't prefer that at all</p>
</blockquote>
<p>yeah, I think I take it back</p>



<a name="247202481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202481">(Jul 26 2021 at 13:32)</a>:</h4>
<p>so, I wonder if this is something we should note in the blog post?</p>



<a name="247202502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202502">(Jul 26 2021 at 13:32)</a>:</h4>
<p>inferring from impls is both complex and has that problem that when you move the impl out of the crate, behavior changes in subtle ways. bad.</p>



<a name="247202521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202521">(Jul 26 2021 at 13:32)</a>:</h4>
<p>I am pondering-- <span class="user-mention" data-user-id="224872">@rylev</span> asked about the where Self: 'a</p>



<a name="247202536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202536">(Jul 26 2021 at 13:33)</a>:</h4>
<p>I definitely think it's worth calling out</p>



<a name="247202565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202565">(Jul 26 2021 at 13:33)</a>:</h4>
<p>worth calling out</p>



<a name="247202580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202580">(Jul 26 2021 at 13:33)</a>:</h4>
<p>and probably asking for examples where that isn't needed?</p>



<a name="247202589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202589">(Jul 26 2021 at 13:33)</a>:</h4>
<p>on that note, having people catalog how they are using it</p>



<a name="247202592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202592">(Jul 26 2021 at 13:33)</a>:</h4>
<p>would be really useful</p>



<a name="247202609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202609">(Jul 26 2021 at 13:33)</a>:</h4>
<p>(or, specifically when you need that <em>not</em> there)</p>



<a name="247202639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202639">(Jul 26 2021 at 13:33)</a>:</h4>
<p>we could default it from the trait declaration</p>



<a name="247202650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202650">(Jul 26 2021 at 13:34)</a>:</h4>
<p>the rule I had considered before was this:</p>



<a name="247202709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202709">(Jul 26 2021 at 13:34)</a>:</h4>
<ul>
<li>look at all the method signatures in the trait</li>
</ul>



<a name="247202738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202738">(Jul 26 2021 at 13:34)</a>:</h4>
<ul>
<li>each place where <code>Self::Foo&lt;'a&gt;</code> is used, look at what type parameters <code>'a</code> is known to outlive from the method signatures</li>
</ul>



<a name="247202752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202752">(Jul 26 2021 at 13:34)</a>:</h4>
<ul>
<li>take the intersection and add them as default where clauses</li>
</ul>



<a name="247202762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202762">(Jul 26 2021 at 13:34)</a>:</h4>
<p>so e.g. if you had</p>



<a name="247202834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202834">(Jul 26 2021 at 13:35)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Item</span><span class="o">&lt;'</span><span class="na">me</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">some_method</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">inputs</span>: <span class="kp">&amp;</span><span class="o">'</span><span class="na">a</span> <span class="nc">T</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span>::<span class="n">Item</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="247202853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202853">(Jul 26 2021 at 13:35)</a>:</h4>
<p>we could infer both <code>Self: 'me</code> and <code>T: 'me</code></p>



<a name="247202871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202871">(Jul 26 2021 at 13:35)</a>:</h4>
<p>we should definitely think about this before we stabilize</p>



<a name="247202878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202878">(Jul 26 2021 at 13:35)</a>:</h4>
<p>hmm</p>



<a name="247202891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202891">(Jul 26 2021 at 13:36)</a>:</h4>
<p>let's open an issue on it so we can do a proper write-up and direct people there</p>



<a name="247202970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247202970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247202970">(Jul 26 2021 at 13:36)</a>:</h4>
<p>Okay. You or me?</p>



<a name="247203032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203032">(Jul 26 2021 at 13:37)</a>:</h4>
<p>I suppose there are a few options</p>
<ul>
<li>Simple, limited default: if exactly one lifetime parameter <code>'x</code>, add <code>where Self: 'x</code></li>
<li>Simple default: for every lifetime parameter <code>'x</code>, add <code>where Self: 'x</code></li>
<li>Complex default: what Niko proposed</li>
</ul>



<a name="247203103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203103">(Jul 26 2021 at 13:37)</a>:</h4>
<p>I think what we want is probably feedback from people: what kinds of annoying where clauses do they have to add in practice?</p>



<a name="247203113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203113">(Jul 26 2021 at 13:37)</a>:</h4>
<p>The reason I proposed my rule is this:</p>



<a name="247203197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203197">(Jul 26 2021 at 13:38)</a>:</h4>
<p>basically, in order to use the trait, those were rules you'd have to meet in any case</p>



<a name="247203257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203257">(Jul 26 2021 at 13:38)</a>:</h4>
<p>I'm trying to imagine a scenario where the outlives rule <em>doesn't</em> hold</p>



<a name="247203269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> marmeladema <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203269">(Jul 26 2021 at 13:38)</a>:</h4>
<p>Sorry to jump in there but I am planning to try out GAT on a partially closed source project but I anticipate I would <em>not</em> want <code>where Self: 'x</code> bounds in my case</p>



<a name="247203273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203273">(Jul 26 2021 at 13:38)</a>:</h4>
<p>that is, where adding <code>where Self: 'a</code> is harmful</p>



<a name="247203292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203292">(Jul 26 2021 at 13:39)</a>:</h4>
<p><span class="user-mention" data-user-id="281572">@marmeladema</span> great! what are you doing with it :)</p>



<a name="247203308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203308">(Jul 26 2021 at 13:39)</a>:</h4>
<p>most of the examples I can come up with involve kind of "Dummy self types" where it wouldn't hurt</p>



<a name="247203325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203325">(Jul 26 2021 at 13:39)</a>:</h4>
<p>e.g. because the self type has no references, so it <em>does</em> outlive <code>'a</code></p>



<a name="247203370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203370">(Jul 26 2021 at 13:39)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/GATs.20ahoy/near/247202970">said</a>:</p>
<blockquote>
<p>Okay. You or me?</p>
</blockquote>
<p>Either is fine with me :) but I think we will want to write up some text explaining the role of the default</p>



<a name="247203448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203448">(Jul 26 2021 at 13:40)</a>:</h4>
<p>I think the blog post would link to this issue and be like "if you'd like to learn more about that clause -- such as why it is necessary, and how we might tweak the rules to make it not necessray -- see <a href="https://github.com/rust-lang/rust/issues/12345">#12345</a>"</p>



<a name="247203466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203466">(Jul 26 2021 at 13:40)</a>:</h4>
<p>Can you open an issue now?</p>



<a name="247203490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203490">(Jul 26 2021 at 13:40)</a>:</h4>
<p>If not, I will</p>



<a name="247203510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203510">(Jul 26 2021 at 13:40)</a>:</h4>
<p>But I think you would probably do a better job explaining</p>



<a name="247203622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> marmeladema <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203622">(Jul 26 2021 at 13:42)</a>:</h4>
<p>I work in an interpreter that from an AST / ParseTree "compiles" those nodes into boxed closure and those boxed closures are taking a "context" as argument which has a lifetime. The "compilation" step is done through a <code>Compiler</code> trait that has default implementation for every AST nodes. And I wondered if I could make the "context" a GAT of that trait</p>



<a name="247203683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203683">(Jul 26 2021 at 13:42)</a>:</h4>
<p>I can</p>



<a name="247203727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203727">(Jul 26 2021 at 13:42)</a>:</h4>
<p><span class="user-mention" data-user-id="281572">@marmeladema</span> after I open the issue, it'd be helpful if you could make a kind of "representative version" of your use case</p>



<a name="247203830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> marmeladema <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203830">(Jul 26 2021 at 13:43)</a>:</h4>
<p>but the type that will implements the <code>Compiler</code> trait must not be tied to the actual lifetime of the context itself</p>



<a name="247203979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247203979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247203979">(Jul 26 2021 at 13:44)</a>:</h4>
<p>I'm drafting up the issue, <span class="user-mention" data-user-id="232957">@Jack Huey</span>, anything else to cover this morning?</p>



<a name="247204005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247204005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247204005">(Jul 26 2021 at 13:45)</a>:</h4>
<p><span class="user-mention" data-user-id="281572">@marmeladema</span> that does sound like the sort of use case I was thinking of</p>



<a name="247204044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247204044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247204044">(Jul 26 2021 at 13:45)</a>:</h4>
<p>I think that's everything for GATs</p>



<a name="247204083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247204083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247204083">(Jul 26 2021 at 13:45)</a>:</h4>
<p>One non-GATs thing to mention: <span class="user-mention" data-user-id="125294">@Aaron Hill</span> commented on <a href="https://github.com/rust-lang/rust/issues/84944">#84944</a> re incremental</p>



<a name="247204236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247204236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> marmeladema <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247204236">(Jul 26 2021 at 13:47)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/GATs.20ahoy/near/247203727">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="281572">marmeladema</span> after I open the issue, it'd be helpful if you could make a kind of "representative version" of your use case</p>
</blockquote>
<p>I'll definitely write up something sharable with this work-group <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="247205876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247205876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247205876">(Jul 26 2021 at 14:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> still working on that issue?</p>



<a name="247205887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247205887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247205887">(Jul 26 2021 at 14:00)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/87479">https://github.com/rust-lang/rust/issues/87479</a></p>



<a name="247205888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247205888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247205888">(Jul 26 2021 at 14:00)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> <span aria-label="point up" class="emoji emoji-1f446" role="img" title="point up">:point_up:</span></p>



<a name="247205905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247205905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247205905">(Jul 26 2021 at 14:00)</a>:</h4>
<p>I'm going to edit the OP to add a few notes though</p>



<a name="247208148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247208148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247208148">(Jul 26 2021 at 14:18)</a>:</h4>
<p>Okay blog post PR has been updated</p>



<a name="247210685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs%20ahoy/near/247210685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs.20ahoy.html#247210685">(Jul 26 2021 at 14:36)</a>:</h4>
<p>Great. I tweaked the issue a bit (e.g., adding the "I have an opinion! What should I do?"</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>